$(function () {
    // 传入日期函数使用过滤器
    template.defaults.imports.dataFormat = function (dtStr) {
        let dt = new Date(dtStr)
        let y = dt.getFullYear()
        let m = padZero(dt.getMonth())
        let d = padZero(dt.getDate())
        let hh = padZero(dt.getHours())
        let mm = padZero(dt.getMinutes())
        let ss = padZero(dt.getSeconds())
        return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
    }

    // 补零函数
    function padZero(n) {
        return n > 9 ? n : '0' + n
    }

    // 定义查询参数
    let q = {
        pagenum: 1,	    //是	int	页码值
        pagesize: 2,	//是	int	每页显示多少条数据
        cate_id: "",	//否	string	文章分类的 Id
        state: "",	    //否	string	文章的状态，可选值有：已发布、草稿
    }

    // 渲染文章列表页面
    let layer = layui.layer
    initTable();

    // 封装
    function initTable() {
        $.ajax({
            method: 'GET',
            url: '/my/article/list',
            data: q,
            success: function (res) {
                if (res.status != 0) {
                    return layer.msg(res.message)
                }
                let str = template('tpl-table', res)
                $('tbody').html(str)
                renderPage(res.total)
            }
        })
    }

    // 获取文章分类
    initCate();
    function initCate() {
        $.ajax({
            url: '/my/article/cates',
            success: function (res) {
                if (res.status != 0) {
                    return layer.msg(res.message)
                }
                let str = template('tpl-cate', res)
                $('select[name=cate_id]').html(str)
                layui.form.render();
            }
        })
    }

    // 筛选
    $('#form-search').on('submit', function (e) {
        e.preventDefault();
        let cate_id = $('select[name=cate_id]').val()
        let state = $('select[name=state]').val()
        q.cate_id = cate_id
        q.state = state
        initTable();
    })

    // 分页
    let laypage = layui.laypage;
    function renderPage(total) {
        laypage.render({
            elem: 'pageBox', //注意，这里的 pageBox 是 ID，不用加 # 号
            count: total, //数据总数，从服务端得到
            limit: q.pagesize,
            curr: q.pagenum,
            //分页模块设置，显示了那些模块
            layout: ['count', 'limit', 'prev', 'page', 'next', 'skip'],
            limits: [2, 3, 4, 10, 20],  //每页显示多少条数据
            jump: function (obj, first) {
                //obj包含了当前分页的所有参数，比如：
                // console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
                // console.log(obj.limit); //得到每页显示的条数
                //赋值页面
                q.pagenum = obj.curr
                q.pagesize = obj.limit;
                //首次不执行
                if (!first) {
                    //do something
                    initTable();
                }
            }
        });
    }

    //删除   事件委托
    $('tbody').on('click', '.btn-delete', function () {
        let Id = $(this).attr('data-id');
        // alert(Id)
        layer.confirm('是否删除?', { icon: 3, title: '提示' }, function (index) {
            //do something
            $.ajax({
                method: 'GET',
                url: '/my/article/delete/' + Id,
                success: function (res) {

                    if (res.status != 0) {
                        return layer.msg(res.message)
                    }
                    layer.msg('删除成功');
                    //页面汇总删除按钮个数等于1，页码大于1 
                    if ($('.btn-delete').length == 1 && q.pagenum > 1) q.pagenum--;
                    //删除成功之后重新渲染
                    initTable();
                }
            })
            layer.close(index);
        });

    })
















})
